1. Field of the Invention
The invention relates to the field of network application monitoring and, more specifically, systems and methods for measuring client, network, and server times from a single source.
2. Description of the Related Art
An accurate picture of client, network, and server times is highly desirable for managing systems that rely on network applications. Such performance analysis allows administrators to identify bottlenecks and allocate resources to improve performance. However, identifying whether latency is caused by the client system, the network, or the remote server can be difficult using a single source.
FIG. 1 shows an example exchange between a local node 110 and a remote node 120 for a network application. The client portion of the network application generates 130 a request. There is a local time delay before the request is actually sent 132 into the network. There is a network time delay before the request is actually received 134 by the remote node 120. There is remote processing time and delays before the remote node 120 sends 136 a response. There is another network time delay before it is received 138 by the local node and still another local time delay before the response is processed 140. This is particularly problematic because the local node 110 has no direct timing data other than the time at which the application request was generated 130 and processing 140 begins. The local time delays represent self-queuing delays based upon the backlog of outgoing and incoming packets at the local node and the outgoing and incoming bandwidth. The network time delays reflect network latency that results from the length of available routes, congestion, failures, intermediate node processing times, and other network delays. The network time delays may not be the same at the time the request is sent 132 and the time the response is sent 138. The remote time delay is a black box that includes queuing delays at the remote node, actual application processing time, and other delays. From the perspective of the local node 110 as a single packet source, there is no direct way to separate the network time delay from the remote time delay at the remote node.
Two prior methods of dealing with this problem have been 1) to use multiple sources, merging the data from at least two different local nodes, and 2) to manually provide the latency and bandwidth to compensate for transit times.
Merge: The merge method involves taking two packet traces of the same transaction and combining them to get the transit times for each packet. The two traces are located at opposite ends of the network, and each packet is seen twice (once by each trace). The difference between the two times is the transit time. The negative aspect of this method is that it can be difficult to deploy two capture agents.
Manual Adjustment: Manual adjustment asks a human to enter the latency and bandwidth to a node. It then uses this information to compute transit times. The negative aspects of this method include the requirement of human input and the oversimplification of latency by specifying a single number instead of a varying latency curve.
There is a need for a system and method for calculating network latency from a single local or host node.